package com.Cychat.commons.entity.vo;

import lombok.Data;
import java.time.LocalDateTime;

@Data
public class AppointmentDetailVo {
    // 预约表字段（直接映射，无需别名）
    private Integer appointmentId;
    private Integer petId;
    private Integer ownerId;
    private String symptom;
    private LocalDateTime appointmentDate;
    private LocalDateTime appointmentTime;
    private Integer status;

    // 嵌套宠物对象（对应 SQL 中的 pet.xxx 别名）
    private PetVo pet;

    // 嵌套主人对象（对应 SQL 中的 petOwner.xxx 别名）
    private PetOwnerVo petOwner;

    // 嵌套主人用户对象（对应 SQL 中的 ownerUser.xxx 别名）
    private UserVo ownerUser;

    // 内部嵌套 VO 类（必须是 static，否则 MyBatis 无法实例化）
    @Data
    public static class PetVo {
        private String name;
        private String type;
        private String breed;
        private LocalDateTime birthday;
        private Double weight;
        private String notes;
    }

    @Data
    public static class PetOwnerVo {
        private String address;
        private String emergencyContact;
    }

    @Data
    public static class UserVo {
        private String nickName;
        private String phone;
        private String avatarUrl;
    }
}